package com.yuer.rpc.decodec;

import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
import io.netty.channel.ChannelHandlerContext;
import io.netty.handler.codec.ByteToMessageDecoder;
import io.netty.handler.codec.MessageToMessageDecoder;
import io.netty.handler.codec.MessageToMessageEncoder;
import io.netty.util.CharsetUtil;

import java.util.List;

/**
 * 消息的编码
 */
public class MessageEncoder extends MessageToMessageEncoder {
//    @Override
//    protected void decode(ChannelHandlerContext channelHandlerContext, Object o, List list) throws Exception {
//        // o是 发送过来 的消息
//        // list
//        System.out.println("消息正在编码中....");
//        ByteBuf byteBuf = (ByteBuf) o;
//        // pipeline有很多handler构成，场地到下一个handler里面
//        list.add(byteBuf.toString(CharsetUtil.UTF_8));
//    }

//    @Override
//    protected void decode(ChannelHandlerContext channelHandlerContext, ByteBuf byteBuf, List<Object> list) throws Exception {
//        System.out.println("消息正在解码中....");
//        Unpooled.
//    }

    @Override
    protected void encode(ChannelHandlerContext channelHandlerContext, Object o, List list) throws Exception {
        System.out.println("正在进行编码....");
        String message = (String) o;
        list.add(Unpooled.copiedBuffer(message,CharsetUtil.UTF_8)); // 就是在处理器汇总进行编码的
    }
}
